const assert = require('assert');
const calc = require('../models/calculate');

it('计算器，相加方法，两参数正值', function () {
    var sum = calc.add(1, 2);
    assert.equal(3, sum);
    
});

it('计算器，相加方法，两参数负值', () => {
    var sum = calc.add(-1, -2);
    assert.equal(-3, sum);
});

it('计算器，相加方法，第一个参数正值，第二个参数为空', () => {
    var block = () => {
        calc.add(1);
    };
    var message = {
        name: 'Error',
        message: '参数b不能为空'
    };

    assert.throws(block, message);
});

it('计算器，相加方法，第一个参数正值，第二个参数类型不对', () => {
    var block = () => {
        calc.add(1, '2');
    };
    var message = {
        name: 'TypeError',
        message: '参数b不是一个数'
    };

    assert.throws(block, message);
});

it('计算器，相加方法，第一个参数为空', () => {
    var block = () => {
        calc.add();
    };
    var message = {
        name: 'Error',
        message: '参数a不能为空'
    };

    assert.throws(block, message);
});

it('计算器，相加方法，第一参数类型不对', () => {
    var block = () => {
        calc.add('1');
    };
    var message = {
        name: 'TypeError',
        message: '参数a不是一个数'
    };

    assert.throws(block, message);
});